package com.zhonghui.controller;

import com.zhonghui.common.core.result.FwResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.net.URLDecoder;
import java.util.UUID;

/**
 * @author: FL
 * @create: 2024 2024/5/26 17:44
 */
@RestController
@Slf4j
public class FileController {
    @Autowired
    private String dirPath;

    @PostMapping("/uploadFile")
    public FwResult<Object> uploadFile(MultipartFile file) {
//        将File 对象转换为 MultipartFile 对象
        // 获取文件名以及后缀名
        String fileName = file.getOriginalFilename();
        // 重新生成文件名（根据具体情况生成对应文件名）
        fileName = UUID.randomUUID()+"_"+fileName;
        // 指定上传文件本地存储目录，不存在需要提前创建
        File filePath = new File(dirPath );
        if(!filePath.exists()){
            filePath.mkdirs();
        }
        try {
            dirPath = URLDecoder.decode(dirPath, "UTF-8");
            log.info("文件{}上传成功", fileName);

            file.transferTo(new File(dirPath+ "/" + fileName));
        } catch (Exception e) {
            log.error("error:",e);
            // 上传失败，返回失败信息
        }

        // 携带上传状态信息回调到文件上传页面
        return FwResult.ok(fileName,"文件上传成功");
    }
}
